﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SIMCObjetoNegocio
{
    public class PortafolioSearchCriteria
    {
        public int? ClienteId { get; set; }
        public int? ResponsableId { get; set; }
        public DateTime Fecha { get; set; }
        public int? GerenteId { get; set; }
        public IList<string> TipoPortafolio { get; set; }
        public int? IdPortafolio { get; set; }
        public string NombreCliente { get; set; }
        public string IdentificacionPersona { get; set; }
        public string NombreUsuarioExterno { get; set; }//Nombre del usuario si es un usuario externo.
        public int UserId { get; set; }
        public string CodigoRol { get; set; }
        public bool ConsolidarPosiciones { get; set; }
        
        /// <summary>
        /// Paginacion
        /// </summary>
        public int Start { get; set; }
        public int Max { get; set; }

        private PortafolioSearchCriteria()
        {
            IniciarObjeto();
        }

        public PortafolioSearchCriteria(DateTime p_Fecha)
        {
            IniciarObjeto();
            Fecha = p_Fecha;
        }

        private void IniciarObjeto()
        {
            ClienteId = 0;
            ResponsableId = 0;
            Fecha = DateTime.MinValue;
            GerenteId = 0;
            TipoPortafolio = new List<string>();
            IdPortafolio = 0;
            NombreCliente = string.Empty;
            IdentificacionPersona = string.Empty;
            NombreUsuarioExterno = string.Empty;
            Start = 0;
            Max = 20;
            UserId = 0;
        }

        public bool TieneFiltro
        {
            get 
            {
                bool resp = false;
                resp = (ClienteId == 0)?false : true;
                resp = ((!resp) && (ResponsableId == 0)) ? false : true;
                resp = ((!resp) && (GerenteId == 0)) ? false : true;
                resp = ((!resp) && (IdPortafolio == 0)) ? false : true;
                resp = ((!resp) && (NombreCliente == string.Empty)) ? false : true;
                resp = ((!resp) && (IdentificacionPersona == string.Empty)) ? false : true;
                resp = ((!resp) && (NombreUsuarioExterno == string.Empty)) ? false : true;
                return resp;
            }
        }

        public bool EsUsuarioInterno
        {
            get
            {
                return NombreUsuarioExterno == string.Empty;
            }
        }

        public bool TienePortafoliosAsociados
        {
            get
            {
                return TipoPortafolio.Count > 0;
            }
        }
    }
}
